Network computing applications involving groups of computers may require simultaneous communication. There are three conventional ways to design a network application for simultaneous group communication: unicast, broadcast, and multicast. Conventional unicast systems require the transmission of a copy of each data packet to one specific recipient. In order to transmit to multiple recipients, a separate connection is made with each recipient. Making multiple direct connections requires a large amount of bandwidth as the number of recipients increases and may result in delays since the same packet must be repeatedly copied and then transmitted to each recipient. In a conventional broadcast system, one copy of each packet is sent to a broadcast address. The broadcast transmission is sent to a large number of people when only a small number actually wish or need to receive the broadcast.
With a conventional multicast system, a network application may send one copy of a packet or packets addressed toward a group of recipients instead of just one recipient as in unicast systems. A network or networks are then responsible for forwarding the packet(s) on toward the necessary recipients. Multicast typically uses a standardized range of destination Internet Protocol (IP) addresses (e.g., 224.0.0.0-239.255.255.255). A multicast source signals the rest of a network to a multicast transmission by setting the destination IP address for a packet within the range of multicast destination IP addresses. The multicast destination IP address used is the multicast group address.
Protocol Independent Multicast-Sparse Mode (PIM-SM) is a control paradigm for multicast transmission. In a PIM-SM system, a multicast source transmits a multicast data packet to a PIM-SM-enabled router (referred to as a Designated Router or DR). The DR encapsulates the received multicast data into a unicast Data Register message. The unicast Data Register message is unicast transmitted from the DR to a rendezvous point (RP) router. The RP router unencapsulates the Data Register message and forwards the multicast data to registered members of the multicast group (discussed below). Once the RP router has identified the multicast data from the DR, it may transmit a Register Stop message to the DR indicating that it is no longer necessary to send unicast data messages to the RP router. Once the DR receives the Register Stop message, it then transmits unencapsulated multicast data directly to the RP router for transmitting to multicast group members.
The DR also periodically transmits a Null Register message to the RP router. Upon receipt of a Null Register message, the RP router again determines whether a multicast group participation has been requested on the RP router or, for an established group, whether the RP router is already receiving unencapsulated multicast data directly. If either of these conditions is met, the RP router sends a Register Stop message to the DR indicating that additional encapsulated unicast Data Register messages are not required. However, if the conditions are not met, a Register Stop message is not sent to the DR and the DR will again begin transmitting encapsulated unicast Data Register messages to the RP router.
On the recipient side of a PIM-SM system, a multicast recipient requests participation in a group transmission by signaling to a closest router, e.g., using the Internet Group Management Protocol (IGMP). The last-hop router uses PIM-SM to request the particular multicast stream from the next-hop routers and up to the RP router. Therefore, under a PIM-SM system, multicast packets only go where requested.
FIG. 1 illustrates an example of a conventional PIM-SM system that includes a multicast source 110, a designated router 115, a multicast-enabled router 120, last-hop routers 125a-125c (collectively “125”), a rendezvous point (RP) 130, and recipients 140a-140d (collectively “140”). Referring to FIG. 1, multicast recipients 140 may signal last-hop routers 125 that they would like a particular transmission. Last-hop routers 125 may send a join request for multicast transmission to RP 130 through multicast-enabled router 120. Different RPs may exist for different multicast group transmissions. Last-hop routers 125 may determine to which RP to send the join request for a particular multicast transmission. Last-hop routers 125 make connect to RP 130 for access to the source multicast stream instead of transmitting the join request directly to multicast source 110 when, for example, they do not know where the source is. As described above, RP 130 receives the multicast data from multicast source 110 through designated router 115 and one or more intermediary nodes such as multicast-enabled router 120, and distributes the multicast data toward all multicast recipients 140 subscribed to the multicast group.